import Vue from 'vue'
import VueResource from 'vue-resource'
import constants from '../commons/constants'
import store from '../store'

Vue.use(VueResource)
Vue.http.options.emulateJSON = true;

export default {
  /**
   * POST请求 并返回resp
   * @param url
   * @param data(json)
   */
  post: function (url, data) {
    if (data == undefined)
      data = {};
    console.log(url);
    if (url.indexOf('127.0.0.1') == -1)
      if (store.getters.getCurrentLoginInfo)
        data.login_token = store.getters.getCurrentLoginInfo.login_token;
    return Vue.http.post(url, data)
  },
  /**
   * POST请求(通用)
   * @param vm vue对象
   * @param url
   * @param data(json)
   * @param fun_suc
   * @param fun_err
   */
  postData: function (vm, url, data, fun_suc, fun_err) {
    this.postDataFullURL(vm, constants.server + url, data, fun_suc, fun_err);
  },
  /**
   * GET请求(通用)
   * @param vm vue对象
   * @param url
   * @param data(json)
   * @param fun_suc
   * @param fun_err
   */
  getData: function (vm, url, data, fun_suc, fun_err) {
    this.getDataFullURL(vm, constants.server + url, data, fun_suc, fun_err);
  },
  /**
   * POST请求(通用)
   * @param vm vue对象
   * @param url 完整URL
   * @param data(json)
   * @param fun_suc
   * @param fun_err
   */
  postDataFullURL: function (vm, url, data, fun_suc, fun_err) {
    this.post(url, data).then(function (resp) {
        var ret = resp.body;
        if (ret.code == '001') {
          vm.$store.dispatch('loginOut').then(() => {
            vm.$router.replace({path: '/login'})
            location.reload();
          })
        }

        fun_suc(resp);
      },
      function (e) {//访问异常提示
        vm.$message({type: 'error', message: '请求异常!请检查网络是否正常！'});
        if (fun_err && (typeof fun_err) == 'function')
          fun_err(e);
        vm.loading = false;
      });
  },
  /**
   * GET请求(通用)
   * @param vm vue对象
   * @param url 完整URL
   * @param data(json)
   * @param fun_suc
   * @param fun_err
   */
  getDataFullURL: function (vm, url, fun_suc, fun_err) {
    Vue.http.get(url).then(function (resp) {
        var ret = resp.body;
        // if (ret!=undefined&&ret!=null&&ret.code!=undefined&&ret.code == '001') {
        //   vm.$store.dispatch('loginOut').then(() => {
        //     vm.$router.replace({path: '/login'})
        //     location.reload();
        //   })
        // }
        if (fun_suc && (typeof fun_suc) == 'function')
          fun_suc(resp);
      },
      function (e) {//访问异常提示
        console.log(e);
        if (fun_err && (typeof fun_err) == 'function')
          fun_err(e);
        else
          vm.$message({type: 'error', message: '请求异常!请检查网络是否正常！'});
        vm.loading = false;
      });
  }
}
